package edu.sctu.java.advanced.pattern.proxy.lab02;

public class Client {
    public static void main(String[] args) {

        // (1) 实现InvocationHandler接口，定义好代理的事务。
        IUserAction userAction = new UserActionImpl();
        UserActionProxy userActionProxy = new UserActionProxy(userAction);

        // (2) 采用JDK的动态代理创建代理对象。
        // 优点：能够快速实现对接口所有方法的代理；
        // 缺点：要求被代理的对象必须实现接口，否则无法实现代理。此外必须要有实现该接口的类。
        IUserAction proxy = (IUserAction) userActionProxy.getProxyInstance();
        proxy.read();
        proxy.write();

    }
}
